contents

하드 링크는 동일한 파일에 대한 또 다른 이름이며, 심볼릭 링크(또는 심링크)는 파일의 경로를 가리키는 바로 가기입니다.

핵심적인 차이점은 무엇을 가리키느냐에 있습니다. 하드 링크는 디스크에 있는 파일의 데이터에 직접 연결되는 반면, 심볼릭 링크는 파일의 이름을 가리킵니다.


기초: 아이노드 (Inode) 📂

링크를 이해하려면 먼저 리눅스나 macOS와 같은 파일 시스템이 파일을 어떻게 추적하는지 이해해야 합니다. 디스크의 모든 파일과 디렉터리에는 해당 파일에 대한 모든 메타데이터를 저장하는 데이터 구조인 **아이노드(inode)**가 있습니다.

아이노드는 파일 이름과 실제 파일 내용을 제외한 모든 것을 저장합니다. 여기에는 다음이 포함됩니다.

디렉터리는 단순히 파일 이름과 해당 아이노드 번호의 목록을 포함하는 특별한 파일입니다.

작동 방식: 파일 이름아이노드 번호아이노드 (메타데이터)데이터 블록


하드 링크: 동일한 파일의 또 다른 이름

하드 링크는 원본 파일과 정확히 동일한 아이노드 번호를 가리키는 새로운 디렉터리 항목(새 파일 이름)입니다.

비유: "로버트"라는 이름의 사람이 "밥"으로도 알려진 경우와 같습니다. 두 이름 모두 정확히 같은 사람을 지칭합니다. 이들은 사본이 아니라 한 개인에 대한 두 개의 다른 이름입니다.

어떤 일이 일어나는가?

주요 특징


심볼릭 링크 (심링크): 파일로 가는 바로 가기

심볼릭 링크는 자신만의 고유한 아이노드를 가진 새롭고 별개의 파일입니다. 이 특별한 파일의 데이터 내용은 단순히 대상 파일의 경로를 포함하는 텍스트 문자열입니다.

비유: 바탕 화면의 바로 가기와 같습니다. 바로 가기는 그것이 가리키는 프로그램의 위치 정보만 담고 있는 작은 파일일 뿐, 프로그램 자체가 아닙니다.

어떤 일이 일어나는가?

주요 특징


주요 차이점 요약 ⚖️

특징 하드 링크 심볼릭 링크
가리키는 대상 파일의 아이노드 파일의 경로 (텍스트 문자열)
아이노드 원본과 동일한 아이노드 공유 자신만의 별개 아이노드를 가짐
삭제 효과 링크 삭제 시 링크 카운트 감소. 카운트가 0이 될 때 데이터 삭제. 링크 삭제는 원본 파일에 영향 없음.
파일 시스템 교차 불가능 가능
디렉터리 링크 불가능 가능

원본 파일과 아이노드에 일어나는 일

마지막 질문에 대한 답변으로, 동작을 요약하면 다음과 같습니다.

references